/*
 * Copyright © 2022 Cask Data, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
import React from 'react';
import { Provider } from 'react-redux';
import { configureStores } from './reducers';

export const Hydrator = () => {
  let store;
  const AngularInit = () => {
    return (
      <div
        dangerouslySetInnerHTML={{
          __html: `
          <init-stores />
        `,
        }}
      />
    );
  };

  // I didn't want to add more to the window but this is the cost
  // of doing business since angular uses global loading all over
  const useReactStore = false;
  if (useReactStore) {
    store = configureStores;
    window.ReactStores = store;
  } else {
    return <AngularInit />;
  }

  // return the angular html
  return (
    <Provider store={store}>
      <AngularInit />
    </Provider>
  );
};
